wayland: apply empty input shape on parent commit
authorOlivier Fourdan <ofourdan@redhat.com>
Wed, 16 Nov 2016 14:05:43 +0000 (15:05 +0100)
committerOlivier Fourdan <ofourdan@redhat.com>
Thu, 15 Dec 2016 12:27:39 +0000 (13:27 +0100)
commit5c3192c75a060feb880b6b530478dc711058c1df
tree7075d13c4b45ca7639eacb4765c12bb746908b35
parentcacd1da8a19cfb456696b67ed9cb0ee32f42d3d0
wayland: apply empty input shape on parent commit

For subsurfaces, the new state which includes the input shape is not
applied by the compositor if the subsurface is in effective synchronous
mode.

So we need to apply the input shape once parent surface is in effective
desynchronized mode, which is when it's committed, otherwise the input
shape may never be applied if the widget is not using being_paint() /
end_paint() to draw on its subsurface, like clutter does.

We do that only for empty input shape as those won't need update when
the subsurface is resized, for all other non-empty input shape, the
client still has to use begin_paint()/end_paint() for the input shape to
be applied.

https://bugzilla.gnome.org/show_bug.cgi?id=774534
gdk/wayland/gdkwindow-wayland.c